package com.hao.cdk.sm.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hao.cdk.sm.domain.entity.AccountUser;
import com.hao.cdk.sm.domain.dto.accountuser.*;
import com.hao.cdk.sm.domain.vo.accountuser.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author: 许自豪
 * @date: 2025-01-23 14:20:42
 * @description: 用户(AccountUser)表服务接口
 */
@Validated
public interface IAccountUserService extends IService<AccountUser> {

	/**
     * 分页查询
     *
     * @param dto dto
     * @return page
     */
    IPage<AccountUserPageVO> doPage(AccountUserPageDTO dto);

    /**
     * 列表查询
     *
     * @param dto dto
     * @return list
     */
    List<AccountUserListVO> doList(AccountUserListDTO dto);
    
    /**
     * 获取单条数据
     *
     * @param id id
     * @return 单条数据
     */
    AccountUserGetVO doGetById(String id);

    /**
     * 新增方法
     *
     * @param dto dto
     * @return boolean
     */
    String doSave(AccountUserSaveDTO dto);

    /**
     * 修改方法
     *
     * @param dto dto
     * @return boolean
     */
    boolean doUpdate(AccountUserUpdateDTO dto);
    
    /**
     * 删除数据
     *
     * @param ids id集合
     * @return 删除结果
     */
    boolean doDelete(List<String> ids);
    
    /**
     * 导入
     *
     * @param file     文件
     * @param titleRow 文本头
     * @param headRow  解析头
     * @return boolean
     */
    boolean importExcel(MultipartFile file, int titleRow, int headRow) throws Exception;

    /**
     * 根据ids导出
     * @param ids ids
     * @param response  res
     */
    void exportExcel(List<String> ids, HttpServletResponse response);
}   
